require 'Datos.rb'
require 'pelicula.rb'

class PeliculasShoes < Shoes
url '/', :ventana_principal

  def ventana_principal
    title "Gestion de DVDs"
	stack :margin => 20, :width => -20 do
      flow do
	    button("Agregar"){agregarPeliculaVentana}
	    para " una pelicula"
	  end

	  subtitle "Consultar"
      para "Buscar una pelicula por"
	  flow do
	    para "Nombre "
        @elTitulo = edit_line :width => 160
		para "Fecha "
		@lbFecha = list_box :items => (1900.to_s ... 2011.to_s).to_a, :width => 50
		para "Director "
	    @elDirector = edit_line :width => 160
	  end
	  flow do
	    para "DVD "
        @dvd_list = list_box :items => Datos.instance.dvds
	  end

      button "Buscar" do
	    pelicula = Pelicula.new
		pelicula.titulo = @elTitulo.text
		pelicula.anno = @lbFecha.text.to_i
		pelicula.director = @elDirector.text

#		alert "Se va a buscar Titulo: #{pelicula.titulo} (#{pelicula.anno}) de #{pelicula.director} en el dvd #{@dvd_list.text}"

	    displayPeliculas(Datos.instance.peliculasXdvd(pelicula, @dvd_list.text) )
	  end
	end
  end
  
  def agregarPeliculaVentana
    Shoes.app :width => 650, :height => 400 do
      stack :margin => 20, :width => -20 do
	    subtitle "Agregar una pelicula"
	    flow do
          para "Nombre "
		  @elTitulo = edit_line :width => 160
		  para "Fecha "
		  @lbFecha = list_box :items => (1900.to_s ... 2011.to_s).to_a, :width => 50
		  para "Director "
	      @elDirector = edit_line :width => 160
        end #flow
	    para "Sinopsis"
	    @ebSinopsis = edit_box :width => 300, :height => 100

	    subtitle "Al DVD..."
	    flow do
	      @dvd_list = list_box :items => Datos.instance.dvds
		  para " o agregar uno nuevo "
	      @dvd_text = edit_line :width => 160
	    end #flow
	    button "Aceptar" do
		  pelicula = Pelicula.new
		  pelicula.titulo = @elTitulo.text
		  pelicula.anno = @lbFecha.text.to_i
		  pelicula.director = @elDirector.text
		  pelicula.sinopsis = @ebSinopsis.text
	      if @dvd_text.nil? or @dvd_text.text == ""
            dvd = @dvd_list.text
		  else
		    dvd = @dvd_text.text
          end
          Datos.instance.addPelicula pelicula, dvd
		  Shoes.app.close
		end
		  
	  end #stck
    end #Shoes.app
  end #agregarPeliculaVentana
  
  def displayPeliculas peliculas_x_dvd
    Shoes.app :width => 650, :height => 600 do
      stack :margin => 20, :width => -20 do
	    peliculas_x_dvd.each do |dvd, peliculas|
          subtitle dvd
		  peliculas.each do |pelicula|
		    flow do
			  para pelicula.titulo + "\t"
			  para "(" + pelicula.anno.to_s + ")\t"
			  para pelicula.director + "\t"
			end #flow pelis
			para pelicula.sinopsis
		  end #peliculas.each
		end #peliculas_x_dvd.each
	  end #stack
	end #shoes.app
  end #displayPeliculas

end

Shoes.app :width => 650, :height => 500